package pe.com.bbva.targps.action;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import pe.com.bbva.targps.bo.ConsultaGPSBO;
import pe.com.bbva.targps.domain.ConsultaGPS;
import pe.com.bbva.util.Util;
import pe.com.stefanini.core.action.GenericAction;
import pe.com.stefanini.core.exceptions.BOException;
import pe.com.stefanini.core.exceptions.DAOException;
import pe.com.stefanini.core.util.StringUtil;

@Service("consultaGPSAction")
@Scope("prototype")
@Results({
	@Result(name="viewListConsultaGPS",type="tiles", location="viewListConsultaGPS"),
	@Result(name="listaGPS",type="json",params={"root","grid"})
})
public class ConsultaGPSAction extends GenericAction {
	private static final long serialVersionUID = 1L;
	private Logger logger = Logger.getLogger(this.getClass()); 

	@Resource
	private ConsultaGPSBO consultaGPSBO;
	
	private Long idProceso;
	private String fecBusInicio;
	private String fecBusFin;
	
	private String fechaInicio;
	private String fechaFin;
	
	@Action(value="initConArchivoGPS")
	public String init() {
		Date date = new Date();
		setFechaInicio(Util.getFormatoFecha(date));
		setFechaFin(Util.getFormatoFecha(date));
		return "viewListConsultaGPS";
	}
	
	@Action(value="findAllConsultaGPS")
	public String findAllTarjeta() {
		try {
			if(getFechaInicio() == null || getFechaInicio().equals("")){
				if(!fecBusInicio.equals(""))
					setFechaInicio(fecBusInicio);
			}
			if(getFechaFin() == null || getFechaFin().equals("")){
				if(!fecBusFin.equals(""))
					setFechaFin(fecBusFin);
			}
			ConsultaGPS consultaGPS = new ConsultaGPS();
			List<ConsultaGPS> consultas = consultaGPSBO.findProcesosCargaRango(consultaGPS, fechaInicio, fechaFin);
			
			setGrid(consultaGPSBO.findToGridGPS(consultas, getSidx()+" "+getSord(),getPage(),getRows()));
			if(getGrid().getRecords().equals(new Integer(0))){
				addActionError("No se encontraron resultados");
			}
		} catch (BOException e) {
			logger.error(StringUtil.getStackTrace(e));
		} catch (DAOException e) {
			logger.error(StringUtil.getStackTrace(e));
		}
		return "listaGPS";
	}
	
	public String getFechaInicio() {
		return fechaInicio;
	}

	public void setFechaInicio(String fechaInicio) {
		this.fechaInicio = fechaInicio;
	}

	public String getFechaFin() {
		return fechaFin;
	}

	public void setFechaFin(String fechaFin) {
		this.fechaFin = fechaFin;
	}

	public String getFecBusInicio() {
		return fecBusInicio;
	}

	public void setFecBusInicio(String fecBusInicio) {
		fecBusInicio = fecBusInicio.replaceAll("[,]?[\\s]+", "");
		this.fecBusInicio = fecBusInicio;
	}
	
	public String getFecBusFin() {
		return fecBusFin;
	}

	public void setFecBusFin(String fecBusFin) {
		fecBusFin = fecBusFin.replaceAll("[,]?[\\s]+", "");
		this.fecBusFin = fecBusFin;
	}

	public Long getIdProceso() {
		return idProceso;
	}

	public void setIdProceso(Long idProceso) {
		this.idProceso = idProceso;
	}
}